package com.spc.car.data.domain.project.po;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.spc.car.data.annotation.Like;
import com.spc.car.data.annotation.Skip;
import com.spc.car.data.entity.project.ProjectDoc;
import com.spc.car.data.util.QueryUtil;
import lombok.Data;

@Data
public class ProjectDocQueryPO {

    /**
     * 文档编号
     */
    private String docCode;

    /**
     * 文档名称
     */
    @Like
    private String docName;

    /**
     * 文档分类 T 模板 D 文件
     */
    private String category;

    /**
     * 文档类型:  招标文件/预审文件/谈判文件/磋商文件等
     */
    private String docType;

    /**
     * 内容类型： N 公告 B 公示 空普通
     */
    private String contentType;

    /**
     * 版本号 默认为时间戳
     */
    private String version;

    /**
     * 项目类型 房建/市政/公路/水利/其它
     */
    private String projectCategory;

    /**
     * 招标项目编号
     */
    private String projectTenderingCode;

    /**
     * 招标项目标段编号
     */
    private String projectTenderingSectionCode;

    /**
     * 合同类型 单价合同等
     */
    private String contractType;

    /**
     * 适用区域 全国/省/市 具体到某区域名称
     */
    private String applicableArea;

    /**
     * 适用项目类型 政府采购/非政府采购
     */
    private String projectType;

    /**
     * 招标方式 公开招标/邀请招标等
     */
    private String tenderMethod;

    /**
     * 资格审查方式 预审/后审
     */
    private String qualificationExamination;

    /**
     * 报价方式 单价/总价
     */
    private String pricingMethod;

    /**
     * 评标方法 综合评标
     */
    private String tenderEvaluationMethod;

    /**
     * 是否进场/现场报名 01 是 02 否
     */
    private String siteRegistration;

    @Skip
    private Integer page = 0;
    @Skip
    private Integer pageSize = 10;

    public Wrapper toWrapper() {
        QueryWrapper<ProjectDoc> wrapper = QueryUtil.toWrapper(this);
        wrapper.select(ProjectDoc.class, info -> !info.getColumn().equals("content"));
        wrapper.eq("status", "A");
        wrapper.orderByDesc("create_time");
        return wrapper;
    }
}
